package com.itheima.service;

/**
 * ClassName:AccountService
 * Package:com.itheima.service
 * Description:
 *
 * @Author 王久顺
 * @Create 2024/12/4 0:01
 * @Version 1.0
 */

import org.springframework.transaction.annotation.Transactional;

/**
 * Spring事务管理具体的实现步骤为:
 * 步骤1:开启事务——在需要被事务管理的方法上添加注解
 *      注意:
 *          @Transactional可以写在接口类上、接口方法上、实现类上和实现类方法上
 *          写在接口类上，该接口的所有实现类的所有方法都会有事务
 *          写在接口方法上，该接口的所有实现类的该方法都会有事务
 *          写在实现类上，该类中的所有方法都会有事务
 *          写在实现类方法上，该方法上有事务
 *          建议写在实现类或实现类的方法上
 * 步骤2:在JdbcConfig类中配置事务管理器——》mybatis使用的是jdbc事务
 *      注意：事务管理器要根据使用技术进行选择，Mybatis框架使用的是JDBC事务，可以直接使用DataSourceTransactionManager
 * 步骤3：开启事务注解
 *      在SpringConfig的配置类中开启——》开启注解式事务驱动@EnableTransactionManagement
 */
public interface AccountService {
    /**
     * 转账操作
     * @param out 传出方
     * @param in 转入方
     * @param money 金额
     */
    @Transactional
    public void transfer(String out,String in ,Double money) ;
}
